Out of our 44 Aim 2 patients, 20 have pre-transplant antibody data. The antibody study that Melissa Harnois and Richard Barfield ran only showed associations between pre-transplant antibody measures and CMV redevelopment, but we are more interested in seeing how much the covariates improve the COMPASS algorithm’s ability to predict changes in cell type expression. There are 16 antibody measures with complete data for the 20 patients. We exclude the italicized antibodies for correlation reasons explained later.
The antibody variables of interest found from Melissa’s project or deemed of interest in the pre-transplant stage are:
In this report, we run original COMPASS and COMPASS-covariate on the 20 patients using different ways of excluding flow gates.
We first transform antibody measures into more usable covariates. In this notebook, we use the scaled difference of the logs of antibody measures at 2-3 months minus the logs of antibody measures at pre-transplant.
Before transformation, here are what the raw antibody differences (2/3 months minus pre-transplant) look like.
## # A tibble: 280 × 20
## TheID Area …¹ CMV-s…² Avidity gB Ec…³ Penta…⁴ gH/gL…⁵ gH/gL…⁶ ID50 ID50 …⁷
## <chr> <dbl> <lgl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 CTOT20… 5.91 NA 90.7 27440. 26874. 3656. 27207 4788. 103.
## 2 CTOT20… 5.61 NA 70.8 26778. 25713. 3044 26470. 2299. 94.2
## 3 CTOT20… 5.66 NA 91.6 25558. 23830. 2306 24253. 3676. 70.4
## 4 CTOT20… 5.67 NA 93.2 24670. 22947 2157. 23614. 3511. 76.3
## 5 CTOT20… 5.79 NA 92.9 24490. 23051. 2116 23641 4362. 87.8
## 6 CTOT20… 5.82 NA 88.5 24492. 23574. 2232. 23865. 4142. 101.
## 7 CTOT20… 5.71 NA 84.8 26474. 22725 2844 24037 3737. 394.
## 8 CTOT20… 3.60 NA 64.3 22109 8596. 825 11716 2012. 110.
## 9 CTOT20… 4.43 NA 66.8 22721. 10302 964. 13487 3041. 129.
## 10 CTOT20… 3.79 NA 57.4 18540. 7742. 662 10124. 2747. 119.
## # … with 270 more rows, 10 more variables: `ID50 without complement` <dbl>,
## # `Phagocytosis Score` <dbl>, `Whole AD169r Virion Phagocytosis (%)` <dbl>,
## # `Area Under Curve.y` <dbl>, `OD450 nm` <dbl>,
## # `CMV-specific IgG1 Concentration (ug/ml)` <dbl>,
## # `CMV-specific IgG2 Concentration (ug/ml)` <dbl>,
## # `CMV-specific IgG3 Concentration (ug/ml)` <dbl>,
## # `CMV-specific IgG4 Concentration (ug/ml)` <dbl>, Visit <dbl>, and …
Below is a closer look at the logged and scaled antibody measures at pre-transplant for the 20 patients in question. The antibody measures are colored by whether an event (CMV reactivation) occurred or not. We have 7 patients who are infected out of 20.
To further define our antibody covariate matrix, we get rid of mostly missing covariates and some correlated covariates then add age as a covariate, saving as the dataframe “antibodyDF_”.
Based on Richard’s analysis and the correlation plot below, we can get rid of a few antibodies and add in age as a covariate.
gH/gL becomes either gH/gL/gO or Pentamer (MFI), which are glycoprotein complexes that antibodies target. Getting rid of gH/gL makes sense then, and gH/gL/gO and Pentamer appear to share similar correlation patterns. Out of these three, I keep only Pentamer.
Richard excludes ID50 without complement (which is related to ID50 with complement and ID50), so I do the same.
Richard excludes Whole AD169r Virion Phagocytosis (ADCP) (which is related to Phagocytosis Score), so I do the same.
Another way of getting rid of antibodies involves looking at the correlation between antibodies and the differences in flow gate frequencies between stimulation types. A negative correlation means when the difference between stimulated and unstimulated gate frequencies is positive and large, the transformed antibody measures are smaller. We’d expect there to not be a difference in frequencies when transformed antibody measures are larger, so we’d expect the beta coefficients to be negative.
We plot this correlation plot for both CD4 (above) and CD8 (below)
We put all of this together by getting rid of the four antibodies which seem redundant, getting rid of the antibodies which seem independent of flow frequency differences for CD4, and adding scaled age as a covariate.
We originally cut down the number of gates by choosing the 6 gates with a maximum of at least 300 cells, but this resulted in some gates that were quite sparse.
In order to avoid this sparsity, we consider the CD4 and CD8 cells separately. We additionally apply a sparsity criteria: we include gates with at least 2 patients with noStim counts more than 5 cells.
These gate counts excluded using the sparsity condition get aggregated into the all-negative CD4 and CD8 gate for the separate CD4 and CD8 gate analysis respectively.
The X (CD4) matrix we feed into COMPASS covariate is the matrix of 10 available antibody markers for our 20 patients. A glimpse of the input for X (CD4) is below:
We select only CD4 gates and further exclude gates which have less than 5 of their counts more than or equal to 2.
The below boxplots compare the mean gamma values estimated by COMPASS-covariate and original COMPASS.
We look in more detail at patients who change; we’d like to see where all their flow and antibody values fall and whether they differ visibly from the people who don’t change. Below are histograms of flow and antibody values with colored lines at the values for each patient of interest.
A couple patients have multiple mean-gamma estimates that change dramatically (see table).
We plot a similar histogram for raw antibody differences:
The acceptance rate for gamma for COMPASS is plotted on the below x-axis and the acceptance rate for gamma for COMPASS-covariate is plotted on the below y-axis.
A traceplot of beta is below with a thin of 33 and the first 50% of samples excluded.
To get an idea of whether antibodies will help in predicting gate reactivity, we do the following:
Below, we create a correlation plot of differences in proportion of cells in each gate vs. each transformed antibody measure of interest (in this case, the scaled difference of logs). More colored cells indicate that an antibody is more correlated with reaction differences in the corresponding gate.
Recall that we were wondering last time why the correlation plot of pre-transplant antibody measures with differences in proportion of cells was exactly opposite for some antibody measures compared to this one. This is caused by the different antibody measures; we look at just pre-transplant logged/scaled antibody measures before and we now look at the difference in logs between 2 to 3 months and pre-transplant antibody measures. If a pre-transplant measure is negatively correlated with expression of a gate after pp65 exposure, and the difference between 2 to 3 months and pre-transplant is positively correlated with expression, then that means the higher the 2 to 3 month antibody value, the more the estimated probability of expression is.
Underneath the correlation plot, we plot beta point estimates (the estimated effects of the antibody measures on the gamma estimates) produced by COMPASS-covariate. Formally, these are the estimated change in log-odds of gamma=1, given a 1-standard deviation increase in the antibody measure. There is a separate estimate for each gate and each antibody measure.
Note that in the effect plot, we include intercepts. These intercepts represent the estimated base log-odds of each gate reacting to pp65, so we don’t expect the actual colors to correspond between plots. We’re more likely to see similar patterns in strength of color.
To see whether any of these are meaningful, we can look at confidence intervals for the beta coefficients.
As a visual check, we make scatterplots of patient age and gB ectodomain vs. difference in flow gate proportion.
We can also plot boxplots of the differences in flow proportions (pp65-noStim) for each gate.
There are two patients who have outliers in difference between pp65 and noStim. We arrange proportions in pp65/noStim in descending order to see where these outliers stem from.
## # A tibble: 704 × 4
## TheID Visit Gate Freq
## <chr> <dbl> <chr> <dbl>
## 1 CTOT22-19-065 2 CD4/CD107a+IFNg+IL-2+TNFa+ | Freq 0.000115
## 2 CTOT22-19-065 2 CD4/CD107a+IFNg+IL-2+TNFa- | Freq 0
## 3 CTOT22-19-065 2 CD4/CD107a+IFNg+IL-2-TNFa+ | Freq 0.000346
## 4 CTOT22-19-065 2 CD4/CD107a+IFNg+IL-2-TNFa- | Freq 0
## 5 CTOT22-19-065 2 CD4/CD107a+IFNg-IL-2+TNFa+ | Freq 0
## 6 CTOT22-19-065 2 CD4/CD107a+IFNg-IL-2+TNFa- | Freq 0
## 7 CTOT22-19-065 2 CD4/CD107a+IFNg-IL-2-TNFa+ | Freq 0
## 8 CTOT22-19-065 2 CD4/CD107a+IFNg-IL-2-TNFa- | Freq 0.00737
## 9 CTOT22-19-065 2 CD4/CD107a-IFNg+IL-2+TNFa- | Freq 0
## 10 CTOT22-19-065 2 CD4/CD107a-IFNg+IL-2+TNFa+ | Freq 0
## # … with 694 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a+IFNg+IL-2+TNFa+ | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0.000115
## 2 CTOT22-19-070 0.000264
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0.000802
## 6 CTOT22-39-160 0.00110
## 7 CTOT22-39-165 0.0000650
## 8 CTOT22-39-166 0.0000576
## 9 CTOT22-39-170 0.000363
## 10 CTOT22-39-171 0.000137
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a+IFNg+IL-2+TNFa- | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0
## 2 CTOT22-19-070 0
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0
## 6 CTOT22-39-160 0
## 7 CTOT22-39-165 0
## 8 CTOT22-39-166 0
## 9 CTOT22-39-170 0
## 10 CTOT22-39-171 0
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a+IFNg+IL-2-TNFa+ | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0.000346
## 2 CTOT22-19-070 0.000720
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0.00163
## 6 CTOT22-39-160 0.00216
## 7 CTOT22-39-165 0.000130
## 8 CTOT22-39-166 0.0000288
## 9 CTOT22-39-170 0.000287
## 10 CTOT22-39-171 0.000178
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a+IFNg+IL-2-TNFa- | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0
## 2 CTOT22-19-070 0
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0
## 6 CTOT22-39-160 0.0000526
## 7 CTOT22-39-165 0
## 8 CTOT22-39-166 0
## 9 CTOT22-39-170 0
## 10 CTOT22-39-171 0.0000274
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a+IFNg-IL-2+TNFa+ | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0
## 2 CTOT22-19-070 0
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0.0000259
## 6 CTOT22-39-160 0
## 7 CTOT22-39-165 0
## 8 CTOT22-39-166 0
## 9 CTOT22-39-170 0
## 10 CTOT22-39-171 0
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a+IFNg-IL-2+TNFa- | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0
## 2 CTOT22-19-070 0.0000101
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0
## 6 CTOT22-39-160 0
## 7 CTOT22-39-165 0
## 8 CTOT22-39-166 0
## 9 CTOT22-39-170 0
## 10 CTOT22-39-171 0
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a+IFNg-IL-2-TNFa+ | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0
## 2 CTOT22-19-070 0.0000203
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0.0000259
## 6 CTOT22-39-160 0.000105
## 7 CTOT22-39-165 0.0000260
## 8 CTOT22-39-166 0
## 9 CTOT22-39-170 0
## 10 CTOT22-39-171 0.0000137
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a+IFNg-IL-2-TNFa- | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0.00737
## 2 CTOT22-19-070 0.00226
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0.00199
## 5 CTOT22-39-153 0.000854
## 6 CTOT22-39-160 0.000736
## 7 CTOT22-39-165 0.000942
## 8 CTOT22-39-166 0.000490
## 9 CTOT22-39-170 0.000559
## 10 CTOT22-39-171 0.00152
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a-IFNg+IL-2+TNFa- | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0
## 2 CTOT22-19-070 0
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0
## 6 CTOT22-39-160 0
## 7 CTOT22-39-165 0
## 8 CTOT22-39-166 0
## 9 CTOT22-39-170 0
## 10 CTOT22-39-171 0.0000686
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a-IFNg+IL-2+TNFa+ | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0
## 2 CTOT22-19-070 0.000213
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0.00103
## 6 CTOT22-39-160 0.000421
## 7 CTOT22-39-165 0.000325
## 8 CTOT22-39-166 0.000115
## 9 CTOT22-39-170 0.000121
## 10 CTOT22-39-171 0.000700
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a-IFNg+IL-2-TNFa+ | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0.000346
## 2 CTOT22-19-070 0.000345
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0.000957
## 6 CTOT22-39-160 0.000315
## 7 CTOT22-39-165 0.000188
## 8 CTOT22-39-166 0.0000864
## 9 CTOT22-39-170 0.0000907
## 10 CTOT22-39-171 0.000850
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a-IFNg+IL-2-TNFa- | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0
## 2 CTOT22-19-070 0.0000406
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0.000233
## 6 CTOT22-39-160 0.000105
## 7 CTOT22-39-165 0.0000195
## 8 CTOT22-39-166 0.00000960
## 9 CTOT22-39-170 0
## 10 CTOT22-39-171 0.000521
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a-IFNg-IL-2+TNFa+ | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0
## 2 CTOT22-19-070 0.0000203
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0.0000259
## 6 CTOT22-39-160 0
## 7 CTOT22-39-165 0.0000325
## 8 CTOT22-39-166 0.0000384
## 9 CTOT22-39-170 0.0000454
## 10 CTOT22-39-171 0.0000412
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a-IFNg-IL-2+TNFa- | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0.000230
## 2 CTOT22-19-070 0.0000913
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0.000879
## 6 CTOT22-39-160 0.0132
## 7 CTOT22-39-165 0.0000520
## 8 CTOT22-39-166 0.0000480
## 9 CTOT22-39-170 0.0000454
## 10 CTOT22-39-171 0.000412
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a-IFNg-IL-2-TNFa+ | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0
## 2 CTOT22-19-070 0.000101
## 3 CTOT22-19-071 0
## 4 CTOT22-21-187 0
## 5 CTOT22-39-153 0.000285
## 6 CTOT22-39-160 0.0000526
## 7 CTOT22-39-165 0.000149
## 8 CTOT22-39-166 0.0000480
## 9 CTOT22-39-170 0.0000907
## 10 CTOT22-39-171 0.000261
## # … with 34 more rows
## # A tibble: 44 × 2
## TheID `CD4/CD107a-IFNg-IL-2-TNFa- | Freq`
## <chr> <dbl>
## 1 CTOT22-19-065 0.992
## 2 CTOT22-19-070 0.996
## 3 CTOT22-19-071 1
## 4 CTOT22-21-187 0.998
## 5 CTOT22-39-153 0.993
## 6 CTOT22-39-160 0.982
## 7 CTOT22-39-165 0.998
## 8 CTOT22-39-166 0.999
## 9 CTOT22-39-170 0.998
## 10 CTOT22-39-171 0.995
## # … with 34 more rows
We see whether the difference originates from pp65 or noStim.
We select only CD8 gates and further exclude gates which have less than 5 of their counts more than or equal to 2.
The below boxplots compare the mean gamma values estimated by COMPASS-covariate and original COMPASS.
We look in more detail at patients who change; we’d like to see where all their flow and antibody values fall and whether they differ visibly from the people who don’t change. Below are histograms of flow and antibody values with colored lines at the values for each patient of interest.
A couple patients have multiple mean-gamma estimates that change dramatically (see table).
The acceptance rate for gamma for COMPASS is plotted on the below x-axis and the acceptance rate for gamma for COMPASS-covariate is plotted on the below y-axis.
A traceplot of beta is below with a thin of 33 and the first 50% of samples excluded.
We can plot boxplots of gate differences by gate:
We can calculate PFS scores using the CD4 and CD8-only gates with sparsity filtering. For gates that are excluded, the polyfunctional score function treats the corresponding counts as zero.
We get four sets of PFS scores:
We plot these polyfunctionality scores by infection status.
We can use these polyfunctional scores as covariates in a Cox PH model in order to model whether a patient is reinfected or not with CMV after prophylaxis stop.
| Coefficient | Adjusted Hazard Ratio | SE of Coefficient | P-value |
|---|---|---|---|
| CD4 | |||
| (Intercept)…1 | 2.02 | 11.48 | 0.86 |
| PFSCD4 | -22.92 | 18.82 | 0.22 |
Area Under Curve.y…3
|
-4.34 | 4.30 | 0.31 |
CMV-specific IgG2 Concentration (ug/ml)…4
|
7.58 | 92.05 | 0.93 |
| ID50…5 | 0.42 | 1.35 | 0.76 |
| CD8 | |||
| (Intercept)…6 | -0.68 | 0.51 | 0.18 |
| PFSCD8 | 18.64 | 60.58 | 0.76 |
| CD4-Covar | |||
| (Intercept)…8 | 1.89 | 6.93 | 0.78 |
| PFSCD4covar | -22.40 | 18.37 | 0.22 |
Area Under Curve.y…10
|
-3.71 | 4.14 | 0.37 |
CMV-specific IgG2 Concentration (ug/ml)…11
|
6.70 | 54.29 | 0.90 |
| ID50…12 | 0.32 | 1.33 | 0.81 |
| CD8-Covar | |||
| (Intercept)…13 | -0.58 | 0.54 | 0.28 |
| PFSCD8covar | -10.42 | 71.57 | 0.88 |
| Coefficient | Adjusted Hazard Ratio | SE of Coefficient | P-value |
|---|---|---|---|
| CD4 | |||
| (Intercept)…1 | 1.45 | 1.34 | 0.28 |
| PFSCD4 | -20.85 | 12.42 | 0.09 |
| CD8 | |||
| (Intercept)…3 | -0.68 | 0.51 | 0.18 |
| PFSCD8 | 18.64 | 60.58 | 0.76 |
| CD4-Covar | |||
| (Intercept)…5 | 1.75 | 1.47 | 0.23 |
| PFSCD4covar | -23.62 | 13.34 | 0.08 |
| CD8-Covar | |||
| (Intercept)…7 | -0.67 | 0.51 | 0.19 |
| PFSCD8covar | 16.73 | 60.17 | 0.78 |
We plot these functionality scores by infection status.
We can use these functional scores as covariates in a Cox PH model in order to model whether a patient is reinfected or not with CMV after prophylaxis stop.
For original and covariate COMPASS separately, we run univariate logistic regression to see whether expression of gates is associated with infection.
## R version 4.2.2 (2022-10-31)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 22.04.1 LTS
##
## Matrix products: default
## BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.20.so
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] haven_2.5.1 knitr_1.41 sas7bdat_0.6 forcats_0.5.2
## [5] stringr_1.5.0 dplyr_1.0.10 purrr_0.3.5 readr_2.1.3
## [9] tidyr_1.2.1 tibble_3.1.8 ggplot2_3.4.0 tidyverse_1.3.2
## [13] DT_0.27 COMPASS_1.29.5 coda_0.19-4 Rcpp_1.0.9
## [17] readxl_1.4.1 devtools_2.4.5 usethis_2.1.6 survival_3.4-0
## [21] kableExtra_1.3.4 lubridate_1.9.0 timechange_0.1.1
##
## loaded via a namespace (and not attached):
## [1] googledrive_2.0.0 colorspace_2.0-3 ellipsis_0.3.2
## [4] fs_1.5.2 clue_0.3-63 rstudioapi_0.14
## [7] farver_2.1.1 remotes_2.4.2 fansi_1.0.3
## [10] mvtnorm_1.1-3 xml2_1.3.3 splines_4.2.2
## [13] cachem_1.0.6 pkgload_1.3.2 jsonlite_1.8.4
## [16] broom_1.0.1 cluster_2.1.4 dbplyr_2.2.1
## [19] shiny_1.7.3 compiler_4.2.2 httr_1.4.4
## [22] backports_1.4.1 assertthat_0.2.1 Matrix_1.5-1
## [25] fastmap_1.1.0 gargle_1.2.1 cli_3.4.1
## [28] later_1.3.0 htmltools_0.5.4 prettyunits_1.1.1
## [31] tools_4.2.2 gtable_0.3.1 glue_1.6.2
## [34] cellranger_1.1.0 jquerylib_0.1.4 vctrs_0.5.1
## [37] svglite_2.1.1 crosstalk_1.2.0 xfun_0.35
## [40] ps_1.7.2 rvest_1.0.3 mime_0.12
## [43] miniUI_0.1.1.1 lifecycle_1.0.3 googlesheets4_1.0.1
## [46] scales_1.2.1 ragg_1.2.4 hms_1.1.2
## [49] promises_1.2.0.1 RColorBrewer_1.1-3 yaml_2.3.6
## [52] memoise_2.0.1 sass_0.4.4 stringi_1.7.8
## [55] highr_0.9 pgdraw_1.1 pkgbuild_1.4.0
## [58] rlang_1.0.6 pkgconfig_2.0.3 systemfonts_1.0.4
## [61] evaluate_0.19 lattice_0.20-45 invgamma_1.1
## [64] htmlwidgets_1.5.4 labeling_0.4.2 pdist_1.2.1
## [67] processx_3.8.0 tidyselect_1.2.0 plyr_1.8.8
## [70] magrittr_2.0.3 R6_2.5.1 generics_0.1.3
## [73] profvis_0.3.7 DBI_1.1.3 pillar_1.8.1
## [76] withr_2.5.0 abind_1.4-5 modelr_0.1.10
## [79] crayon_1.5.2 utf8_1.2.2 tzdb_0.3.0
## [82] rmarkdown_2.19 urlchecker_1.0.1 grid_4.2.2
## [85] data.table_1.14.6 callr_3.7.3 reprex_2.0.2
## [88] digest_0.6.31 webshot_0.5.4 xtable_1.8-4
## [91] httpuv_1.6.7 textshaping_0.3.6 munsell_0.5.0
## [94] viridisLite_0.4.1 bslib_0.4.1 sessioninfo_1.2.2